module.exports = {
  title: 'Qui基础组件文档库',
  description: '基于Element-ui二次封装基础组件示例',
  base: '/',
  // port: 6666,
  // dest: './dist',   // 设置输出目录
  head: [
    ['link', { rel: 'shortcut icon', type: 'image/x-icon', href: `./favicon.ico` }]
  ],
  markdown: {
    // lineNumbers: true // 代码块显示行号
  },
  themeConfig: {
    nav: [
      { text: '主页', link: '/' },
      // { text: '实际项目问题', link: '/projectProblem/permission' },
      { text: '基础组件', link: '/baseComponents/' },
    ],
    sidebar: {
      '/projectProblem/': [
        {
          title: 'Vue项目',
          collapsable: false,
          children: [
            'permission',
            'keepAlive',
            'axios'
          ]
        }
      ],
      '/baseComponents/': [
        // {
        //   title: '基于element封装',
        //   collapsable: true,
        //   children: [
        {
          title: '常用组件',
          collapsable: false,
          children: [
            // 'TTheme/base', // 主题设置
            'QInput/base', // input组件
            'QButton/base', // button组件
            'QTimerBtn/base', // 获取验证码倒计时组件
            'QSearch/base', // 下拉搜索查询组件
            'QLayout/base', // 布局组件
            'QLayoutPage/base', // 局部布局组件
            'QStepWizard/base', // 步驟组件
            'QDatePicker/base', // 日期组件
            'QDialog/base', // 弹窗组件
            'QDetail/base', // 详情组件
            'QTreeSelect/base', // 下拉选择树形及结构组件
            'QSelect/base', // 下拉选择组件
            'QPaginationSelect/base', // 下拉选择分页组件
            // 'QSelectTable/base', // 下拉选择表格组件
            // 'QUploadExcel/base' // 批量上传excel组件
          ]
        },
        {
          title: '下拉选择表格组件',
          collapsable: false,
          children: [
            'QSelectTable/radio',
            'QSelectTable/isKeyup',
            'QSelectTable/radioDefaultSelectVal',
            'QSelectTable/radioPagination',
            'QSelectTable/isShowFirstColumn',
            'QSelectTable/isShowQuery',
            'QSelectTable/isShowQuerySpan',
            'QSelectTable/radiovirtual', // 单选--虚拟列表
            'QSelectTable/multiplevirtual', // 多选-虚拟列表
            'QSelectTable/multiple',
            'QSelectTable/multipleDefaultSelectVal',
            'QSelectTable/showPagination',
            'QSelectTable/formDemo',
            'QSelectTable/help', // 使用帮助(Attributes)
          ]
        },
        {
          title: '查询条件组件',
          collapsable: false,
          children: [
            'QQueryCondition/base', // 基本
            'QQueryCondition/slot', // 插槽使用
            'QQueryCondition/labelRender', // tsx自定义label使用
            'QQueryCondition/defaultVal', // 默认值
            'QQueryCondition/linkage', // 联动使用
            'QQueryCondition/QSelectUse', // 结合TSelect使用
            'QQueryCondition/QDatePickerUse', // 结合TDatePicker使用
            'QQueryCondition/help', // 使用帮助(Attributes)
          ]
        },
        {
          title: '表单组件',
          collapsable: false,
          children: [
            'QForm/base', // 基本模式
            'QForm/labelPosition', // 对齐方式
            'QForm/widthSize', // 每行展示多少项
            'QForm/rules', // 表单验证
            'QForm/eventHandle', // 事件使用
            'QForm/labelRender', // 自定义label
            'QForm/slotName', // 自定义输入框插槽
            'QForm/textShow', // 文本展示
            'QForm/comUse', // 自己组件使用
            'QForm/assignment', // 赋值回显
            'QForm/submit', // 切换页面获取表单数据
            'QForm/dynamic', // 动态增减表单项
            'QForm/help' // 使用帮助(Attributes)
          ]
        },
        {
          title: '模块表单组件',
          collapsable: false,
          children: [
            'QModuleForm/base', // 基本模式
            'QModuleForm/slotName', // 模块插槽使用
            'QModuleForm/disabled', // 某个模块是否禁用展开
            'QModuleForm/labelPosition', // 模块表单对齐方式
            'QModuleForm/rules', // 模块表单表单验证
            'QModuleForm/validateError', //  模块表单校验错误提示
            'QModuleForm/footer', // 模块表单自定义底部按钮
            'QModuleForm/tabs', //  模块表单显示tabs(注意只显示在最后一个模块)
            'QModuleForm/isGoBackEvent', //  模块表单自定义返回事件（默认返回上一页）
            'QModuleForm/isShowBack', //  模块表单没有返回icon
            'QModuleForm/extra', //  模块表单title右侧插槽使用
            'QModuleForm/titleBtn', // 某个模块Title右侧插槽使用

            'QModuleForm/detail', // 模块详情基本模式
            'QModuleForm/detailspan', // 模块详情每行展示项
            'QModuleForm/tooltip', // 模块详情提示项
            'QModuleForm/detailslot', // 模块详情插槽使用
            'QModuleForm/detailslotName', // 模块详情某个值value插槽使用
            'QModuleForm/detaildisabled', // 某个模块是否禁用展开
            'QModuleForm/detailTitleBtn', // 某个模块Title右侧插槽使用
            'QModuleForm/help' // 使用帮助(Attributes)
          ]
        },
        {
          title: 'QTable组件',
          collapsable: false,
          children: [
            'QTable/base', // 基本
            'QTable/sequence', // 序列
            'QTable/radio', // 单选
            'QTable/radioDefault', // 单选--默认选中
            'QTable/checkbox', // 基本复选
            'QTable/pageCheck', // 基本复选--翻页选中
            'QTable/expand', // 展开行
            'QTable/pagination', // 分页
            'QTable/virtual', // 虚拟列表
            'QTable/notSort', // 指定列不需要排序
            'QTable/customSort', // 自定义排序
            'QTable/mergedCell', // 合并单元格
            'QTable/headerGroup', // 表头合并
            'QTable/slotNameMerge', // 表头合并插槽显示
            // 'QTable/headerGroupEditTable', // 表头合并单元格编辑功能
            'QTable/renderCol', // render列渲染
            'QTable/renderFor', // 某列 render for循环渲染
            'QTable/slotName', // 插槽列渲染
            'QTable/filters', // 字典过滤
            'QTable/objRenderPorp', // 对象模式渲染
            'QTable/renderHeader', // 自定义列标题 label
            'QTable/treeTable',
            'QTable/rules', // 单元格编辑--校验
            'QTable/editSingle', // 单元格编辑
            'QTable/singleEditKeyup', // 单元格编辑键盘事件
            'QTable/singleEditSlot', // 单元格编辑-插槽-键盘事件
            'QTable/singleEditTable', // 开启单个单元格编辑
            'QTable/eventHandle', // 单元格编辑使用第三方组件事件
            'QTable/cellEditSave', // 单元格编辑保存单行操作
            'QTable/editTable', // 开启整行编辑模式
            'QTable/rowSort', // 行拖拽排序
            'QTable/columnSet', // 显示隐藏列
            'QTable/operation', // 操作栏
            'QTable/operatorBtn', // 操作栏
            'QTable/operatorRender', // 操作栏
            'QTable/operatorSlotName', // 操作栏
            'QTable/customRender', // customRender操作自定义渲染
            'QTable/tree', // TreeTable组件
            'QTable/help' // 使用帮助(Attributes)
          ]
        },
        {
          title: 'QAdaptivePage组件',
          collapsable: false,
          children: [
            'QAdaptivePage/base',
            'QAdaptivePage/selection',
            'QAdaptivePage/lefttree',
          ]
        }
      ],
    }
  },
  chainWebpack(config) {
    config.resolve.alias.set('core-js/library/fn', 'core-js/features');
  },
  configureWebpack: {
    module: {
      rules: [
        {
          test: /\.tsx?$/,
          exclude: /node_modules/,
          use: [
            'cache-loader',
            {
              loader: 'babel-loader',
              options: {
                babelrc: false,
                configFile: false,
                presets: [
                  '@babel/preset-env', // 可以识别es6语法
                  '@vue/babel-preset-jsx' // 解析jsx语法
                ]
              }
            },
            {
              loader: 'ts-loader',
              options: {
                appendTsxSuffixTo: [/\.vue$/, /\.md$/]
              }
            }
          ]
        }
      ]
    }
  },
  plugins: [
    [
      'vuepress-plugin-typescript',
      {
        tsLoaderOptions: {
          // ts-loader 的所有配置项
        },
      },
    ],
    // ['@vuepress/plugins-back-to-top', false],
    ['vuepress-plugin-gotop-plus', {
      // mobileShow: false,
      threshold: 150
    }],
    '@vuepress-reco/extract-code'
  ]
}
